home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ccdl151s.zip / INCLUDE / CC68.P < prev    next >
Text File  |  1997-06-14  |  7KB  |  186 lines

  1. /* Protogen Version 1.00 Saturday May 31, 1997  17:24:44 */
  2.  
  3.                               /* Gexpr68.c */
  4.  
  5. int chksize(int lsize, int rsize);
  6. AMODE    *make_label(int lab);
  7. AMODE    *makebf(ENODE *node, AMODE *ap1, int size);
  8. AMODE    *make_immed(long i);
  9. AMODE    *make_offset(ENODE *node);
  10. void tofloat(AMODE *ap,int size);
  11. void make_legal(AMODE *ap,int flags,int size);
  12. void doshift(int op, AMODE *ap2, AMODE *ap1, int size);
  13. void bit_legal(AMODE *ap,ENODE *node, int size);
  14. AMODE *get_bitval(AMODE *ap,ENODE *node, int size);
  15. void bit_move(AMODE *ap1, AMODE *ap2, ENODE *node, int flags, int sizein, int sizeout);
  16. void do_extend(AMODE *ap,int isize,int osize,int flags);
  17. int     isshort(ENODE *node);
  18. int     isbyte(ENODE *node);
  19. int isamshort(AMODE *ap);
  20. int isamshort2(AMODE *ap, AMODE *ap2);
  21. int isambyte(AMODE *ap);
  22. int isambyte2(AMODE *ap, AMODE *ap2);
  23. AMODE    *gen_index(int siz1,ENODE *node);
  24. AMODE    *gen_deref(ENODE *node, int flags,int size, int flag);
  25. AMODE    *gen_unary(ENODE *node,int flags,int size,int op, int fop);
  26. AMODE    *gen_binary(ENODE *node,int flags,int size,int op, int fop);
  27. AMODE    *gen_xbin(ENODE *node,int flags,int size,int op, int fop);
  28. AMODE    *gen_shift(ENODE *node, int flags, int size, int op);
  29. AMODE    *gen_modiv(ENODE *node, int flags, int size, int op, int modflag);
  30. void swap_nodes(ENODE *node);
  31. AMODE * gen_pdiv(ENODE *node, int flags, int size);
  32. AMODE * gen_pmul(ENODE *node, int flags, int size);
  33. AMODE    *gen_mul(ENODE *node, int flags, int size, int op);
  34. AMODE    *gen_hook(ENODE *node, int flags, int size);
  35. AMODE    *gen_asadd(ENODE *node, int flags, int size, int op, int fop);
  36. AMODE    *gen_aslogic(ENODE *node, int flags, int size, int op);
  37. AMODE *gen_asshift(ENODE *node, int flags, int size, int op);
  38. AMODE    *gen_asmul(ENODE *node, int flags, int size,int op);
  39. AMODE    *gen_asmodiv(ENODE *node, int flags, int size, int op, int modflag);
  40. AMODE *gen_moveblock(ENODE *node, int flags, int size);
  41. int count_regs(AMODE *ap1, AMODE *ap2);
  42. AMODE    *gen_assign(ENODE *node, int flags, int size);
  43. AMODE    *gen_refassign(ENODE *node, int flags, int size);
  44. AMODE    *gen_aincdec(ENODE *node, int flags, int size, int op);
  45. int push_param(ENODE *ep,int size);
  46. int push_stackblock(ENODE *ep);
  47. int     gen_parms(ENODE *plist,int size);
  48. AMODE    *gen_fcall(ENODE *node,int flags, int size);
  49. AMODE    *gen_pfcall(ENODE *node,int flags, int size);
  50. AMODE    *gen_expr(ENODE *node, int flags, int size);
  51. int     natural_size(ENODE *node);
  52. void gen_compare(ENODE *node, int btype1, int btype2, int btype3, int btype4, int label);
  53. void truejp(ENODE *node, int label);
  54. void falsejp(ENODE *node, int label);
  55.  
  56.                               /* Gstmt68.c */
  57.  
  58. void genstmtini(void);
  59. AMODE    *makedreg(int r);
  60. AMODE    *makeareg(int r);
  61. AMODE    *makefreg(int r);
  62. AMODE    *make_mask(int mask, int reverse, int floatflag);
  63. AMODE    *make_direct(int i);
  64. AMODE    *make_strlab(char *s);
  65. void genwhile(SNODE *stmt);
  66. void gen_for(SNODE *stmt);
  67. void genif(SNODE *stmt);
  68. void gendo(SNODE *stmt);
  69. void gen_genword(SNODE *stmt);
  70. AMODE *set_symbol(char *name, int isproc);
  71. AMODE *flush_for_libcall(void);
  72. AMODE *call_library(char *lib_name,int size);
  73. int analyzeswitch(SNODE *stmt);
  74. void bingen(int lower, int avg, int higher,AMODE *ap1, int deflab, int size, long *switchids, int *switchlabels, int *switchbinlabels);
  75. void genbinaryswitch(SNODE *stmt, int deflab);
  76. void gencompactswitch(SNODE *stmt, int deflab);
  77. void gencase(SNODE *stmt);
  78. void genxswitch(SNODE *stmt);
  79. void genreturn(SNODE *stmt,int flag);
  80. void genstmt(SNODE *stmt);
  81. void scppinit(void);
  82. void genfunc(SNODE *stmt);
  83.  
  84.                               /* Outas68.c */
  85.  
  86. void outcodeini(void);
  87. void datalink(int flag);
  88. void nl(void);
  89. void outop(char *name);
  90. void putop(int op);
  91. void putconst(ENODE *offset);
  92. void putlen(int l);
  93. void putamode(AMODE *ap);
  94. void put_code(OCODE *cd);
  95. void put_fmask(int mask, int reverse);
  96. void put_mask(int mask, int reverse);
  97. void putreg(int r);
  98. void gen_strlab(SYM *sp);
  99. void put_label(OCODE *cd);
  100. void put_staticlabel(long label);
  101. void genfloat(float val);
  102. void gendouble(double val);
  103. void genlongdouble(long double val);
  104. int genstring(char *str, int uselong);
  105. void genbyte(long val);
  106. void genword(long val);
  107. void genlong(long val);
  108. void gensrref(SYM *sp,int val);
  109. void genref(SYM *sp,int offset);
  110. void genpcref(SYM *sp,int offset);
  111. void genstorage(int nbytes);
  112. void gen_labref(int n);
  113. int     stringlit(char *s, int uselong);
  114. void dumplits(void);
  115. void cseg(void);
  116. void dseg(void);
  117. void bssseg(void);
  118. void startupseg(void);
  119. void rundownseg(void);
  120. void cppseg(void);
  121. void gen_virtual(char *name);
  122. void gen_endvirtual(char *name);
  123. void genlongref(DATALINK *p);
  124. void asm_header(void);
  125. void globaldef(SYM *sp);
  126. void putexterns(void);
  127.  
  128.                               /* Peep68.c */
  129.  
  130. void peepini(void);
  131. AMODE    *copy_addr(AMODE *ap);
  132. void gen_code(int op,int len,AMODE *ap1,AMODE *ap2);
  133. void gen_lea(int size, AMODE *ap1, AMODE * ap2);
  134. void gen_codelab(SYM *lab);
  135. void gen_line(SNODE *stmt);
  136. void gen_codef(int op, int len, AMODE *ap1, AMODE *ap2);
  137. void gen_code3(int op, int len, AMODE *ap1, AMODE *ap2, AMODE *ap3);
  138. void add_peep(OCODE *new);
  139. void gen_label(int labno);
  140. void flush_peep(void);
  141. void peep_move(OCODE *ip);
  142. int peep_tst(OCODE *ip);
  143. int     equal_address(AMODE *ap1, AMODE *ap2);
  144. void peep_add(OCODE *ip);
  145. void peep_sub(OCODE *ip);
  146. void     peep_cmp(OCODE *ip);
  147. void peep_muldiv(OCODE *ip, int op);
  148. void peep_uctran(OCODE *ip);
  149. void peep_label(OCODE *ip);
  150. void opt3(void);
  151.  
  152.                                /* Reg68.c */
  153.  
  154. void regini(void);
  155. void gen_push(int reg, int rmode, int flag);
  156. void gen_pop(int reg, int rmode, int flag);
  157. void initstack(void);
  158. void mark(void);
  159. void release(void);
  160. AMODE    *temp_data(void);
  161. AMODE    *temp_addr(void);
  162. AMODE    *temp_float(void);
  163. void freedata(int dreg);
  164. void freeaddr(int areg);
  165. void freeop(AMODE *ap);
  166.  
  167.                                /* An68.c */
  168.  
  169. void reserveregs(int *datareg, int *addreg, int *floatreg);
  170. void allocate(int datareg, int addreg, int floatreg, SNODE *block );
  171.  
  172.                               /* Conf68.c */
  173.  
  174. int confcodegen(char s, int bool);
  175. void confsetup(void);
  176. int     alignment(int type, TYP *tp);                             /* STATIC */
  177. int getalign(int sc, TYP *tp);
  178. long getautoval(long val);
  179. int funcvaluesize(int size);
  180.  
  181. /* Protogen Version 1.00 Saturday May 31, 1997  17:24:47 */
  182.  
  183.                               /* Inasm68.c */
  184.  
  185. void inasmini(void);
  186. SNODE *asm_statement (int shortfin);